package com.yy.wga.pay.feign.response;

import lombok.Data;

/**
 * 微信创建支付订单响应体
 * @author guochao
 * @date 2021/6/5
 */
@Data
public class CreatePrePayOrderResponse {
    /**
     * 支付类型 1、微信 2、支付宝
     */
    private Integer type;
    /**
     * 内部支付订单号
     */
    private String payOrderNo;
    /**
     * app微信支付需要的请求参数
     */
    private AppWechatPayData appWechatData;
    /**
     * js微信支付需要的请求参数
     */
    private JsWechatPayData jsWechatPayData;
    /**
     * h5微信支付需要的请求参数
     */
    private H5WechatPayData h5WechatData;
    /**
     * app支付宝支付需要的请求参数
     */
    private AppAliPayData appAliPayData;
    /**
     * app支付宝支付需要的请求参数
     */
    private H5AliPayData h5AliPayData;

    @Data
    public static class AppWechatPayData {
        /**
         * 应用id
         */
        private String appId;
        /**
         * 商户号mchid
         */
        private String partnerId;
        /**
         * 预支付交易会话标识。用于后续接口调用中使用，该值有效期为2小时
         */
        private String prepayId;
        /**
         * 订单详情扩展字符串
         */
        private String packageValue;
        /**
         * 随机字符串
         */
        private String nonceStr;
        /**
         * 时间戳
         */
        private Long timeStamp;
        /**
         * 签名
         */
        private String sign;
    }

    @Data
    public static class JsWechatPayData {
        /**
         * 预支付交易会话标识。用于后续接口调用中使用，该值有效期为2小时
         */
        private String prepayId;
        /**
         * 时间戳， 10位
         */
        private Long timeStamp;
        /**
         * 随机字符串
         */
        private String nonceStr;
        /**
         * 签名类型，默认为RSA，仅支持RSA。
         */
        private String signType = "RSA";
        /**
         * 签名，使用字段AppID、timeStamp、nonceStr、package计算得出的签名值
         */
        private String paySign;
    }


    @Data
    public static class H5WechatPayData {
        /**
         * 支付跳转链接
         */
        private String h5Url;
    }

    @Data
    public static class AppAliPayData {
        /**
         * orderInfo
         */
        private String orderInfo;
    }

    @Data
    public static class H5AliPayData {
        /**
         * from
         */
        private String from;
        /**
         * 支付链接
         */
        private String payUrl;
    }
}
